home *** CD-ROM | disk | FTP | other *** search
/ SPACE 1 / SPACE - Library 1 - Volume 1.iso / utilitys / 499 / letemfly / di_fly.c next >
Encoding:
C/C++ Source or Header  |  1991-08-11  |  1.2 KB  |  56 lines

  1. /* ------------------------------------------------------------------------- */
  2. /* ----- di_fly.c ----- Flying Dials using Let em Fly! --------------------- */
  3. /* ------------------------------------------------------------------------- */
  4.  
  5. #include <tos.h>
  6. #include <aes.h>
  7. #include "di_fly.h"
  8.  
  9. /* ------------------------------------------------------------------------- */
  10.  
  11. #define NULL    ((void *) 0l);
  12.  
  13. LTMFLY    *letemfly = NULL;
  14.  
  15. /* ----- Cookie Jar -------------------------------------------------------- */
  16.  
  17. typedef struct {
  18.         long    id,
  19.             *ptr;
  20.         } COOKJAR;
  21.  
  22. /* ------------------------------------------------------------------------- */
  23.  
  24. long *_get_cookie(long cookie)
  25. {
  26.     long    sav;
  27.     COOKJAR    *cookiejar;
  28.     int    i = 0;
  29.  
  30.     sav = Super(0l);
  31.     cookiejar = *((COOKJAR **)0x05a0l);
  32.     Super((void *)sav);
  33.     if(cookiejar)
  34.     {
  35.         do
  36.         {
  37.             if(cookiejar[i].id == cookie)
  38.                 return(cookiejar[i].ptr);
  39.             else
  40.                 i++;
  41.         }
  42.         while(cookiejar[i].id);
  43.     }
  44.     return(0);
  45. }
  46.  
  47. /* ------------------------------------------------------------------------- */
  48.  
  49. void di_fly(OBJECT *tree)
  50. {
  51.     if(!letemfly)
  52.         letemfly = (LTMFLY *)_get_cookie('LTMF');
  53.     if(letemfly)
  54.         letemfly->di_fly(tree);
  55. }
  56.